package com.yunzheng.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yunzheng.bo.MissionStatusCountBO;
import com.yunzheng.entity.ProjectMission;
import com.yunzheng.vo.MissionGanttchartVo;
import com.yunzheng.vo.MissionShowListVo;
import com.yunzheng.vo.MissionShowVo;
import com.yunzheng.vo.MyMissionListVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 郭思良
 * @create 2020-07-23 15:38
 */

public interface ProjectMissionMapper extends BaseMapper<ProjectMission> {

    /**
     * 工作项甘特图
     * @param missionProject 工作项所属的项目
     * @return 返回项目工作项甘特图
     */
    List<MissionGanttchartVo> getMissionGanttchart(@Param("missionProject") String missionProject);

    /**
     * 展示工作项列表
     * @param missionProject 要展示工作项的项目ID
     * @param missionType 工作项的类型（需求、缺陷、任务）
     * @return 返回工作项的基本信息
     */
    List<MissionShowListVo> getMissionShowList(@Param("missionProject") String missionProject, @Param("missionType") Integer missionType);

    /**
     * 显示工作项内容
     * @param missionId 显示该工作项的内容
     * @return 返回工作项的详细信息
     */
    MissionShowVo getMissionShow(@Param("missionId") String missionId);

    /**
     * 显示我的工作项，根据userId
     * @param realname 根据token的用户姓名
     * @return 返回 该用户的工作项
     */
    List<MyMissionListVO> getMyMissionList(String realname);

    /**
     * 查询该项目中不同状态中的工作项的数量分别
     * @param projectId 项目id
     * @return 返回不同状态的工作项数量
     */
    List<MissionStatusCountBO> selectStatusCount(@Param("projectId") String projectId);
}
